Čtvrtý semestr na FIT ČVUT

2021-06-02

Uplynuly dva týdny po poslední zkoušce zimního, 3. semestru, a začal 4. semestr. Jaký byl? Dozvíte se v tomto článku.

Čtvrtý semestr byl, obdobně jako třetí, téměř plně distanční (s výjimkou jedné volitelné kontaktní zkoušky, které jsem se zúčastnil). Narozdíl od předchozího semestru jsem tedy neměl ubytování na kolejích. Tento semestr byl však speciální, a to proto, že mi bylo nabídnuto, abych cvičil předmět BI-PA2 (který jsem loni absolvoval). Značnou část svého času jsem tedy věnoval přípravě cvičení, což ovlivnilo mou přípravu na zbylé předměty a celkově také kvůli tomuto byl 4. semestr pro mě nejnáročnější.

Oproti třetímu semestru jsem jednak kvůli nedostatku času (cvičil jsem PA2), jednak kvůli ještě přísnějším vládním opatřením neměl příležitost trávit příliš mnoho času jinými věcmi než školou, tedy jsem čtvrtý semestr zvládnul časově mnohem lépe (každý týden zkouškového jedna zkouška, 2 předtermíny, 2 předměty zkoušku neměly).

Operační systémy [BI-OSY] (A, 5 kreditů)

Předmět, jehož cílem je seznámit studenty se základy fungování operačních systémů - zpočátku se probíraly vícevláknové aplikace, jak ochránit přístup ke sdíleným prostředkům a kritickým sekcím, následně správa paměti v OS - stránkování a v neposlední řadě také systémy souborů (FAT, NTFS, UFS), jejich výhody a nevýhody...

Každý týden se konala přednáška na YouTube, kterou vedl pan Trdlička a která byla vždy velmi zajímavá a k tématu. Proseminář, který se měl konat každé dva týdny, ale konal se spíše každý týden (protože jak se říká, v distanční výuce jde vše pomaleji), už byl více diskuznější a celkově mi do distanční formy výuky úplně nezapadl. Cvičení, ta byla úplný propadák - měla sloužit jako konzultace k semestrálním úlohám, než jsem ale měl cvičení, tak už jsem úlohu dávno dokončil.

Celý předmět bývá zakončen zápočtem za vypracování alespoň jedné ze dvou semestrálních úloh (první na téma vlákna, druhá na téma správa paměti) a zkouškovým testem (na Progtestu). Díky distanční výuce bylo rozhodnuto o změny tohoto testu na třetí "semestrální úlohu". Úlohy byly složité, každá mi zabrala přibližně 10-15 hodin, vzhledem k tomu, že to ale mimo přednášky byl jediný čas strávený na předmětu to nevadilo.

Předmět mě bavil, jednak jsem se dozvěděl, jak to funguje uvnitř počítače na trochu vyšší úrovni než z předmětu BI-SAP, jednak jsem se ale také dozvěděl o problematice vláken, multithreadingu, sdílených prostředcích apod., což mi pomohlo především v dalších předmětech, protože dnes je už každá aplikace vícevláknová.

Vyhledávání na webu a v multimédiích [BI-VWM] (A, 5 kreditů)

Zajímavý úvod do vyhledávání webu a v multimédiích. Jakožto studenta webového inženýrství mě zaujala spíše ta část s vyhledáváním na webu (linked data, SEO, Pagerank) a úvod (boolský, vektorový model), které jsou prakticky použitelné při tvorbě webových stránek. Vyhledávání v multimédiích bylo spíše takové nahlédnutí, jak to funguje, podrobně se mu věnuje v navazujícím předmětu NI-VMW na magistru.

Každý týden se konala přednáška na MS Teams, kterou vedl pan Skopal z MFF UK. Přednášky byly zajímavé a daly se s trochou snahy pochopit, jediné, co mi trochu vadilo, byly slidy v angličtině. Při přednášce jsem tak musel spojovat český výklad s anglickým textem.

Zápočet zkouška (kvůli koronavirové situaci) se uděloval za vypracování semestrálního projektu na jedno zvolené téma. Já jsem si zvolil téma SPARQL + Linked data, které dost souvisí s SQL, jako semestrálku jsem tedy v podstatě pouze předělal semestrálku z předmětu BI-DBS. Nejtěžší pro mě bylo vypracovat zprávu k projektu, kdy jsem u některých dotazů musel vysvětlit vykonávací plán (jakým způsobem se provede výběr dat).

Předmět mě bavil, určitě mi přinesl i dost zajímavých poznatků.

Softwarové inženýrství I [BI-SI1] (A, 5 kreditů)

Předmět zaměřený na práci v týmu, mající za cíl naučit studenty základní praktiky a vzory při vývoji firemních aplikací. Učí se zde modelovat diagramy zachycující reálné situace, které zákazník potřebuje řešit, navrhnout pro něj ideální řešení a následně ho naimplementovat.

Zápočet byl udělen za postupné vypracovávání týmového projektu. Tým, jehož jsem byl součástí, měl za úkol vytvořit mobilní aplikaci pro iOS na správu denních kalorických příjmů a výdajů. Kromě druhého kontrolního bodu, kde zadrhla komunikace a 3 dny před odevzdáním jsme se dozvěděli, že jeden člen týmu vůbec neudělal a neudělá žádnou práci byla tato práce velmi přínosná (naučit se domluvit a pracovat v týmu je vždy velmi důležité).

Zkouška se skládala z modelování tří diagramů na základě diktovaného zadání od zkoušejícího.

Předmět mi připadal asi nejužitečnější, jelikož zatímco třeba programování nebo databáze se můžete z různých dokumentací a videí naučit sami, tak o práci v týmu toto neplatí a je rozhodně lepší vědět, jak to funguje dříve než ve skutečné práci.

Programování v Kotlinu [BI-KOT] (A, 4 kredity)

Vyloženě programovací předmět, který měl za cíl naučit práci v programovacím jazyce Kotlin. Kotlin je relativně nový programovací jazyk založený jako nadstavba nad programovacím jazykem Java. Oproti Javě nabízí mnoho efektivních konstrukcí, proto je velmi oblíbený například při vývoji mobilních aplikací pro operační systém Android. Díky své kompatibilitě s Javou lze navíc přímo kombinovat Kotlin a Javu v jednom projektu.

Zápočet zkouška byly uděleny za 1) vypracování semestrální práce, což mohl být libovolný projekt napsaný v programovacím jazyce Kotlin. Já jsem se (z důvodu úspory času) rozhodl pro rewrite své semestrální práce z předmětu BI-TJV a 2) zvládnutí písemné zkoušky, která obsahovala mnoho otázek týkajících se dokumentace Kotlinu (konkrétní podoba funkcí, různé typy identifikátorů).

Byť byl předmět docela těžký, hodnotím ho velmi pozitivně, jelikož se chci v budoucnu vývojem mobilních aplikací pro Android v Kotlinu zabývat, a právě tento předmět mi s tím velice pomohl.

Programování pro operační systém Android [BI-AND] (A, 4 kredity)

Další programovací předmět, jehož cílem je naučit vyvíjet aplikace pro mobilní platformu Android, která je v dnešní době stále více rozšířená. Předmět se zabývá především efektivními technologiemi pro vývoj těchto aplikací, a to tak, aby dokázaly přesně reagovat na různé nepříznivé situace, jako vybitá baterie, otáčení obrazovky apod.

Zápočet byl udělen za aktivitu na cvičeních (dostali jsme rozbitou mobilní aplikaci se seznamem věcí, co opravit) a především za vypracování semestrální práce. Ta měla, narozdíl od BI-KOT, pevně zadané téma a strukturu (ukázková aplikace). Vypracování aplikace s takto pevně zadanou strukturou a technologiemi byl oříšek, jelikož bez 100% znalosti nešlo občas úplně dobře odhadnout, jak daného chování docílit.

Zkouška se (kvůli situaci, však už to znáte) skládala z hodinového pohovoru s učitelem, kdy mi bylo položeno 10 otázek na nejrůznější témata probíraná na přednáškách.

Opět, obdobně jako u předmětu BI-KOT mi tento předmět velmi pomohl pro mou budoucí kariéru vývoje mobilních aplikací.

Počítačové sítě [BI-PSI] (A, 5 kreditů)

Speciální předmět, který v mém studijním plánu nemá obdobu. Cílem předmětu je seznámit se základy síťařiny - jak funguje Ethernet, adresace v IP, TCP protokoly, seznámí podrobně s ISO/OSI modelem, různými aplikačními protokoly, fungováním Wi-Fi i optických sítí.

Zápočet byl v podstatě zadarmo - pouze za vypracování semestrální úlohy (server pro ovládání robotů, který se dal napsat za 4 hodiny) a pak ještě malý test v průběhu semestru.

Zkouška se skládala z velmi náročného rozstřelu, který ale naštěstí (mimo pár chytáků) obsahoval již známé otázky, takže se dal napsat, a následné písemné části - 10 krátkých otázek, počítací úloha a 1 dlouhá otázka. Zkouška z BI-PSI byla jediná, kterou jsem konal kontaktně, jelikož jsem chtěl se alespoň jednou za semestr na školu podívat.

Tento předmět byl určitě zajímavý, pár pasáží z přednášek ohledně efektivity zapojení Wi-Fi sítě, toho jak funguje přenos pomocí aplikačních protokolů mi pomohlo, jsem ale rád, že jsem si vybral webové inženýrství.

Bezpečnost [BI-BEZ] (A, 6 kreditů)

Hodně zajímavý předmět, koncipován rozdílně vůči jiným předmětům. Předmět má za cíl naučit studenty základům informační bezpečnosti - šifrování, hashování, digitální podpis, certifikáty apod. Součástí je tedy jak teorie - testování prvočíselnosti, RSA, AES, eliptické křivky, Diffie-Hellman, tak praxe - naprogramování pár základních domácích úloh s pomocí C knihovny OpenSSL.

Zápočet byl udělen za dva zápočtové testy, které byly uskutečněny formou openbook (libovolné materiály kromě komunikace s ostatními studenty) na systému MARAST a následně také za vypracování 5 praktických úloh (témata jako operační módy blokových šifer, soukromý a veřejný klíč (RSA) a certifikáty.

Zkouška se skládala z písemného openbook rozstřelu - 3x4 ano/ne otázky, 2 otázky s číselnou odpovědí a 1 teoretická otázka - a ústní zkoušky. V rozstřelu se vyskytovaly zákeřnější otázky (právě proto, že byl formát openbook), ústní zkouška, u které již více povolených pomůcek nebylo, byla jednodušší (a zkoušející byl také vlídnější).

Předmět byl velmi zajímavý, naučil mě určitě hodně informací o tom jak správně šifrovat informace, využívat hashe proč využívat HTTPS a jak to vlastně funguje uvnitř.

Suma sumárum?

Tento, 4. semestr, byl pro mě určitě jeden z těch náročnějších, především kvůli náloži semestrálních prací ke konci a cvičení PA2. Nakonec se mi ho podařilo dokončit úspěšně na den dětí, 1.6, a trochu i k mému překvapení bez nějakého většího zadrhnutí (čti za A).

O mně

Jsem programátor webů, mobilních aplikací a YouTuber

Kontakt

V případě zájmu pište na:
kvetinac97[zavinac]email[tecka]cz